package com.atguigu.day07

import org.apache.spark.sql.SparkSession

object $05_UDF {

  /**
    * UDF: 一进一出
    * UDTF: 一进多出
    * UDAF: 聚合函数 max  min  sum
    *
    *     自定义udf函数:
    *         1、定义一个函数
    *         2、注册自定义函数
    */
  def main(args: Array[String]): Unit = {

    val spark = SparkSession.builder().master("local[4]").appName("test").getOrCreate()

    import spark.implicits._
    //注册udf函数
    spark.udf.register("prefixid",func)
    //员工id
    val df = List( "10001","00024","10034","003339","200","00000001").toDF("id")
    //需求: 此时员工id正常应该是8位,对于不满8位左边用0补全
    df.show()
    df.selectExpr("prefixid(id) id").show()
  }
  //udf函数
  val func = ( id:String ) => {
    //
    val idlen = id.length

    s"${"0" * (8-idlen)}${id}"
  }
}
